package com.spsoft.vatoutinv.service.issueinvoice;

import com.spsoft.vatoutinv.enums.CheckParamEnum;
import com.spsoft.vatoutinv.model.dto.vmsfulloutinvoice.VmsFullOutInvoiceInfoDto;
import com.spsoft.vatoutinv.model.vo.issueinvoice.ErrorVerifyVo;

import java.math.BigDecimal;
import java.util.List;

/**
 * 数据校验接口
 *
 * @author : chenxudong
 * @date : 2024/3/27 17:41
 */
public interface CheckDataService {

    /**
     * 开票业务逻辑校验
     * @param invoiceDtoList 发票数据集合
     * @param deptCode 机构编码
     * @param checkSource 调用来源
     * @return 错误信息
     */
    List<ErrorVerifyVo> checkDataBusiness(List<VmsFullOutInvoiceInfoDto> invoiceDtoList, String deptCode, String checkSource);

    /**
     * 校验String类型参数
     *
     * @param param          待校验的参数
     * @param checkParamEnum 数据校验枚举类
     * @return 如校验不通过返回错误信息
     */
    String checkStringParam(String param, CheckParamEnum checkParamEnum);

    /**
     * 校验BigDecimal类型参数
     *
     * @param param          待校验的参数
     * @param checkParamEnum 数据校验枚举类
     * @return 如校验不通过返回错误信息
     */
    String checkBigDecimalParam(BigDecimal param, CheckParamEnum checkParamEnum);
}
